#pragma once

#include <vgraph>
#include "EventArgs.h"

struct CursorChangedEventArgs : public EventArgs_flag 
{
public:
	enum {CAPTURE = 0x01,WHICH = 0x02,POSITION = 0x04};
	static CursorChangedEventArgs CaptureChanged(bool capture){CursorChangedEventArgs args;args.capture = capture; args.flag |= CAPTURE; return args;}
	static CursorChangedEventArgs WhichChanged(uint32 which) {CursorChangedEventArgs args;args.which = which; args.flag |= WHICH;return args;}
	static CursorChangedEventArgs PositionChanged(const Point& position) {CursorChangedEventArgs args;args.position = position; args.flag |= POSITION;return args;}

	uint32 Which() const {return which;}
	bool IsCapture() const {return capture;}
	const Point& GetPosition() const {return position;};

protected:
	CursorChangedEventArgs(){}
	uint32 which;
	bool capture;
	Point position;
};

enum CursorType
{
	Layout_Cursor = 0,
	Text_Cursor,
	ZoomIn_Cursor,
	ZoomOut_Cursor,
	SelectItem_Cursor,
	GraphCreate_Cursor,
	ImportText_Cursor,
	ImportImage_Cursor,
	BDArrow_Cursor,
	FDArrow_Cursor,
	VArrow_Cursor,
	HArrow_Cursor,
	Lock_Cursor,
	SelectHGuideLine_Cursor,
	SelectVGuideLine_Cursor,
	HorzTableLine_Cursor,
	VertTableLine_Cursor,
	TableCell_Cursor,
};